Latency and preemptive detection for an input device

ABSTRACT

Some embodiments related to an input device with a hybrid switch coupled to a depressible element. The hybrid switch can include a first and second switch with both switches configured to activate in response to a depressible element being pressed by a user. In some aspects, the hybrid switch architecture can be used to introduce an interrupt signal when the depressible element is pressed by a threshold distance (thereby generating event data) to ensure that a periodic input device report includes the event data regardless of when a periodic switch status check is performed. In further embodiments, the hybrid switch architecture can be used to calibrate the input device and set a reliable preemptive activation threshold that cause the input device to generate event data.

BACKGROUND

Input devices are commonplace in modern society and are typically usedto convert human-induced analog inputs (e.g., touches, clicks, motions,touch gestures, button presses, scroll wheel rotations, etc.) made inconjunction with an input device into digital signals for computerprocessing. An input device can include any device that can provide dataand control signals to a computing system. Some non-limiting examples ofinput devices include computer mice, keyboards, virtual reality and/oraugmented reality controllers, touch pads, remote controls, gamingcontrollers, joysticks, trackballs, and the like. Some non-limitingexamples of computing systems include desktop computers, laptopcomputers, netbook computers, gaming consoles, tablets and “phablet”computers, smart phones, personal digital assistants, wearable devices(e.g., smart watches, glasses), virtual reality (VR) and/or augmentedreality (AR) headsets and systems, and the like.

Input devices have undergone many marked improvements over the lastseveral decades. In some contemporary input devices, such as computermice and keyboards, buttons and/or keys often employ contact-basedswitches for click detection. Contact-based switches have been in themarket for many years and have significantly improved in quality andprice, but are subject to wear-and-tear over extended use due torepeated contact-based actuation. This can often result in unreliableperformance characteristics and low signal-to-noise ratios that would beunacceptable to even casual users, much less those in the morediscerning gaming community. As such, better solutions are needed.

Unless otherwise indicated herein, the materials described in thissection are not prior art to the claims in this application and are notadmitted to be prior art by inclusion in this section.

BRIEF SUMMARY

In some embodiments, an input device comprises one or more processors, adepressible element including two switches including a first switchconfigured to generate a first signal when the depressible element isdepressed by a threshold distance and a second switch configured togenerate a second signal indicating when the depressible element isdepressed by the threshold distance and the second switch is in anactive state. The one or more processors can be communicatively coupledto the first switch and the second switch and configured to receive thefirst signal from the first switch, configure the second switch tochange from an inactive state to an active state in response toreceiving the first signal, receive the second signal from the secondswitch in the active state, determine whether the second signalindicates that the depressible element is depressed by the thresholddistance, and generate event data confirming that the depressibleelement is depressed by the threshold distance in response to receivingthe second signal indicating that the depressible element is depressedby the threshold distance. In some embodiments, the first switch is anelectric or galvanic contact-based switch and the second switch is acontactless switch including one of an optical, capacitive, inductive,piezo, or magnetic contactless switch. In some aspects, the secondswitch is configured to change from an inactive state to an active statein response to receiving a first rising edge of the first signal.

In certain embodiments, when the second switch is in the active state,the second switch operates in a first power mode and the second switchis configured to continuously or intermittently detect whether thedepressible element is depressed by the threshold distance, when thesecond switch is in the inactive state, the second switch operates in asecond power mode and the second switch does not detect whether thedepressible element is depressed by the threshold distance. Typically,the second switch consumes at least 90% more power when in the firstpower mode than when in the second power mode. When in the active state,the second switch detects whether the depressible element is depressedby the threshold distance at a frequency of at least 1 kHz. The secondswitch can be in the inactive state by default until switched to theactive state in response to the one or more processors receiving thefirst signal. In some cases, the one or more processors cause the secondswitch to switch from the active state to the inactive state after athreshold time of inactivity where the depressible element is notdepressed. The input device can be a computer mouse wherein thedepressible element is a button on the computer mouse, a keyboardwherein the depressible element is a key on the keyboard, or othersuitable input device (e.g., game controller, remote control, medicaldevice controller, etc.).

In some embodiments, a method of operating an input device can include:receiving a first signal from a first switch of the input device, thefirst switch configured to generate the first signal when a depressibleelement of the input device is depressed by a threshold distance;configuring a second switch of the input device to change from aninactive state to an active state in response to receiving the firstsignal; receiving a second signal from the second switch when the secondswitch is in the active state, the second signal indicating whether thedepressible element is depressed by the threshold distance; determiningwhether the second signal indicates that the depressible element isdepressed by the threshold distance; and generating event dataconfirming that the depressible element is depressed by the thresholddistance in response to receiving the second signal that indicates thatthe depressible element is depressed by the threshold distance. Thefirst switch can be an electric or galvanic contact-based switch and thesecond switch can be one of an optical, capacitive, inductive, piezo, ormagnetic contactless switch. The second switch may be configured tochange from an inactive state to an active state in response toreceiving a first rising edge of the first signal. When the secondswitch is in the active state, the second switch can operate in a firstpower mode and the second switch is configured to continuously orintermittently detect whether the depressible element is depressed bythe threshold distance, when the second switch is in the inactive state,the second switch operates in a second power mode and the second switchdoes not detect whether the depressible element is depressed by thethreshold distance, and the second switch consumes at least 90% morepower when in the first power mode than when in the second power mode.When in the active state, the second switch may detect whether thedepressible element is depressed by the threshold distance at afrequency of at least 1 kHz. In some cases, the second switch is in theinactive state by default until switched to the active state in responseto receiving the first signal. The second switch may switch from theactive state to the inactive state after a threshold time of inactivitywhere the depressible element is not depressed. The input device can bea computer mouse where the depressible element is a button on thecomputer mouse, a keyboard where the depressible element is a key on thekeyboard, or other suitable input device including medical devices,internet-of-things devices, gaming devices, home entertainment devices,fitness devices, or any suitable input device with input elements thatcan be configured to incorporate the myriad hybrid switchimplementations described herein.

In further embodiments, an input device can include a housing and adepressible element coupled to the housing, the depressible elementhaving two switches including a first switch configured to generate afirst signal when the depressible element is depressed by a thresholddistance and a second switch configured to generate a second signalindicating whether the depressible element is depressed by the thresholddistance when the second switch is in an active state. The input devicecan further include one or more processors disposed in the housing andcommunicatively coupled to the first switch and the second switch, theone or more processors configured to receive the first signal from thefirst switch, configure the second switch to change from an inactivestate to an active state in response to receiving the first signal,receive the second signal from the second switch in the active state,determine whether the second signal indicates that the depressibleelement is depressed by the threshold distance, generate event dataconfirming that the depressible element is depressed by the thresholddistance in response to receiving the second signal that indicates thatthe depressible element is depressed by the threshold distance, generatean interrupt signal in response to the second signal indicating that thedepressible element is depressed by the threshold distance, and inresponse to receiving the interrupt signal, cause the input device toinclude the event data on a next periodic input device report regardlessof whether the event data is generated before or after a periodic switchstatus check, the periodic switch status check occurring once beforeeach successive input device report. The first switch can be an electricor galvanic contact-based switch, and the second switch can be one of anoptical, capacitive, inductive, piezo, or magnetic contactless switch.The second switch can be configured to change from an inactive state toan active state in response to receiving a first rising edge of thefirst signal. The input device is communicatively coupled to a hostcomputing device, and the input device report is generated and sent tothe host computing device at 1 ms intervals. The second switch can be inthe inactive state by default until switched to the active state inresponse to the one or more processors receiving the first signal. Theinput device can be a computer mouse where the depressible element is abutton on the computer mouse, a keyboard where the depressible elementis a key on the keyboard, or other suitable input device includingmedical devices, internet-of-things devices, gaming devices, homeentertainment devices, fitness devices, or any suitable input devicewith input elements that can be configured to incorporate the myriadhybrid switch implementations described herein.

In some embodiments, a method of operating an input device includes:receiving a first signal from a first switch of the input device, thefirst switch configured to generate the first signal when a depressibleelement of the input device is depressed by a threshold distance;configuring a second switch of the input device to change from aninactive state to an active state in response to receiving the firstsignal; receiving a second signal from the second switch when the secondswitch is in the active state, the second signal indicating whether thedepressible element is depressed by the threshold distance; determiningwhether the second signal indicates that the depressible element isdepressed by the threshold distance; generating event data confirmingthat the depressible element is depressed by the threshold distance inresponse to receiving the second signal that indicates that thedepressible element is depressed by the threshold distance; generatingan interrupt signal in response to the second signal indicating that thedepressible element is depressed by the threshold distance; and inresponse to receiving the interrupt signal, causing the input device toinclude the event data on a next periodic input device report regardlessof whether the event data is generated before or after a periodic switchstatus check, the periodic switch status check occurring once beforeeach successive input device report. In some embodiments, the firstswitch is an electric or galvanic contact-based switch and the secondswitch is one of an optical, capacitive, inductive, piezo, or magneticcontactless switch and can be configured to change from an inactivestate to an active state in response to receiving a first rising edge ofthe first signal. In some aspects, the second switch is in the inactivestate by default until switched to the active state in response toreceiving the first signal.

In certain embodiments, an input device comprises one or more processorsand a depressible element including two switches including a firstswitch configured to generate a first signal when activated and a secondswitch configured to generate a second signal when activated. The one ormore processors can be communicatively coupled to the first switch andthe second switch and the one or more processors can be configured to:receive the first signal from the first switch indicating that the firstswitch is activated in response to the depressible element beingdepressed by a threshold distance; determine a first position of thedepressible element when the first signal is received, the firstposition of the depressible element corresponding to the thresholddistance; calibrate a first activation threshold for the second switchbased on the first position of the depressible element when the firstsignal is received, the first activation threshold causing the secondswitch to generate the second signal when the depressible element isdepressed to the first position corresponding to the threshold distance;determine a second activation threshold for the second switch, thesecond activation threshold corresponding to a second position of thedepressible element that causes the second switch to generate the secondsignal, wherein the second position is between the first position and aposition of the depressible element when at rest and not beingdepressed; and cause the second switch to switch from the firstactivation threshold to the second activation threshold. In someaspects, the first switch is an electric or galvanic contact-basedswitch and the second switch is one of an optical, capacitive,inductive, piezo, or magnetic contactless switch. The one or moreprocessors can be further configured to receive an input from a usercorresponding to a selection of second activation threshold for thesecond switch, wherein the determining of the second activationthreshold is based on the input from the user. The input device can be acomputer mouse where the depressible element is a button on the computermouse, a keyboard where the depressible element is a key on thekeyboard, or other suitable input device including medical devices,internet-of-things devices, gaming devices, home entertainment devices,fitness devices, or any suitable input device with input elements thatcan be configured to incorporate the myriad hybrid switchimplementations described herein.

In some embodiments, a method of operating an input device comprises:receiving a first signal from a first switch of the input device, thefirst switch configured to generate the first signal when a depressibleelement of the input device is depressed by a threshold distance;determining a first position of the depressible element when the firstsignal is received, the first position of the depressible elementcorresponding to the threshold distance; calibrating a first activationthreshold for a second switch based on the first position of thedepressible element when the first signal is received, the firstactivation threshold causing the second switch to generate a secondsignal when the depressible element is depressed to the first positioncorresponding to the threshold distance; determining a second activationthreshold for the second switch, the second activation thresholdcorresponding to a second position of the depressible element thatcauses the second switch to generate the second signal, wherein thesecond position is between the first position and a position of thedepressible element when at rest and not being depressed; and causingthe second switch to switch from the first activation threshold to thesecond activation threshold. In some aspects, the first switch is anelectric or galvanic contact-based switch, and the second switch is oneof an optical, capacitive, inductive, piezo, or magnetic contactlessswitch. The method can further comprise receiving an input from a usercorresponding to a selection of second activation threshold for thesecond switch, where the determining of the second activation thresholdis based on the input from the user. The input device can be a computermouse where the depressible element is a button on the computer mouse, akeyboard where the depressible element is a key on the keyboard, orother suitable input device including medical devices,internet-of-things devices, gaming devices, home entertainment devices,fitness devices, or any suitable input device with input elements thatcan be configured to incorporate the myriad hybrid switchimplementations described herein.

This summary is not intended to identify key or essential features ofthe claimed subject matter, nor is it intended to be used in isolationto determine the scope of the claimed subject matter. The subject mattershould be understood by reference to appropriate portions of the entirespecification of this disclosure, any or all drawings, and each claim.

The foregoing, together with other features and examples, will bedescribed in more detail below in the following specification, claims,and accompanying drawings.

The terms and expressions that have been employed are used as terms ofdescription and not of limitation, and there is no intention in the useof such terms and expressions of excluding any equivalents of thefeatures shown and described or portions thereof. It is recognized,however, that various modifications are possible within the scope of thesystems and methods claimed. Thus, it should be understood that,although the present system and methods have been specifically disclosedby examples and optional features, modification and variation of theconcepts herein disclosed should be recognized by those skilled in theart, and that such modifications and variations are considered to bewithin the scope of the systems and methods as defined by the appendedclaims.

BRIEF DESCRIPTION OF THE DRAWINGS

The features of the various embodiments described above, as well asother features and advantages of certain embodiments of the presentinvention will be more apparent from the following detailed descriptiontaken in conjunction with the accompanying drawings, in which:

FIG. 1 shows an example of a computer system that can include any of avariety of host computing devices and computer peripheral devices,including computer peripheral devices (e.g., a computer mouse, keyboard,etc.) that can be configured to perform aspects of the various inventiveconcepts described herein;

FIG. 2 shows a simplified block diagram of a system configured foroperating an input device, according to certain embodiments;

FIG. 3 shows a simplified block diagram of a system for operating a hostcomputing device, according to certain embodiments;

FIG. 4A shows a cross-section of an example of a contact-based switchfor an input device.

FIG. 4B is a signal diagram showing an example of a typical signalcorresponding to a click event by a properly functioning contact-basedswitch.

FIG. 4C is a signal diagram showing an example of a possible signalcorresponding to a click event by an improperly functioningcontact-based switch.

FIG. 5A shows an example of an operation of an optical switch sensorwith a default open configuration, according to certain embodiments.

FIG. 5B shows an example of an operation of an optical switch sensorwith a default closed configuration, according to certain embodiments.

FIG. 6 is an example of a hybrid switch for an input device, accordingto certain embodiments.

FIG. 7 is an example of an electrical circuit diagram to implementaspects of a hybrid switch, according to certain embodiments.

FIG. 8A is a flow chart showing how a hybrid switch implementation canbe used for improved power efficiency in an input device, according tocertain embodiments.

FIG. 8B is another flow chart showing how a hybrid switch implementationcan be used for improved power efficiency in an input device, accordingto certain embodiments.

FIG. 9A is a simplified timing diagram showing aspects of how an inputdevice performs certain status checks and device reports.

FIG. 9B is a simplified timing diagram showing aspects of how an inputdevice performs certain status checks and device reports in response toan input.

FIG. 9C is a simplified timing diagram showing aspects of how an inputdevice with a hybrid switch performs certain status checks and devicereports in response to an input, according to certain embodiments.

FIG. 9D is a simplified flow chart showing aspects of a method forefficiently reporting event data using a hybrid switch in an inputdevice, according to certain embodiments.

FIG. 10A is a simplified timing diagram showing aspects of generatingpreemptive inputs on an input device using a hybrid switch, according tocertain embodiments.

FIG. 10B is a simplified flow chart showing aspects of a method forgenerating preemptive inputs on an input device using a hybrid switch,according to certain embodiments.

FIG. 11A-11B show a cross-section of a keyboard key implementationutilizing an optical-based hybrid switch, according to certainembodiments.

FIG. 12A-12B show a cross-section of a keyboard key implementationutilizing an inductive-based hybrid switch, according to certainembodiments.

Throughout the drawings, it should be noted that like reference numbersare typically used to depict the same or similar elements, features, andstructures.

DETAILED DESCRIPTION

Aspects of the present disclosure relate generally to electronicdevices, and more particularly to computer peripheral devices thatutilize a hybrid switch implementation for improved performancecharacteristics, according to certain embodiments.

In the following description, various examples of devices utilizinghybrid switch technologies are described. For purposes of explanation,specific configurations and details are set forth in order to provide athorough understanding of the embodiments. However, it will be apparentto one skilled in the art that certain embodiments may be practiced orimplemented without every detail disclosed. Furthermore, well-knownfeatures may be omitted or simplified in order to prevent anyobfuscation of the novel features described herein.

The following high level summary is intended to provide a basicunderstanding of some of the novel innovations depicted in the figuresand presented in the corresponding descriptions provided below. Aspectsof the invention relate to various improved computer peripheral devicesand electronic devices more generally (also referred to as inputdevices) that incorporate hybrid switches, as described in theembodiments that follow.

An input device, as noted above, is typically used to converthuman-induced analog inputs (e.g., touches, clicks, motions, touchgestures, button presses, scroll wheel rotations, etc.) made inconjunction with the input device into digital signals for computerprocessing. A button (e.g., used in a computer mouse, remote control,game controller, etc.) or key (e.g., used on a keyboard) are commondepressible elements that can be depressed by a user to instantiate atype of control signal (e.g., an alphanumeric character, a left/rightmouse button, a trigger, etc.). For a button, in many contemporarycomputer mice, the button “click” detection is typically based on a typeof contact-based switch, such as a galvanic or electric switch, where aphysical contact between two elements causes the input device togenerate a control signal (e.g., a button click). These types ofswitches have been used for many decades and, through continuedinnovation, have seen improvements in longevity, reliability, and price.However, contact-based switches (see, e.g., FIG. 4A) are stillsusceptible to inevitable wear-and-tear as the contacts mechanically orchemically wear out, resulting in poor quality, noisy signals (see,e.g., FIGS. 4B-4C). Some contemporary input devices have incorporatedcontactless switches (e.g., optical switches—see, e.g., FIGS. 5A-5B).Although these types of switches provide better reliability andlongevity as compared to contact-based switches, they can consumesignificantly more current (e.g., 5-6 mA) even when not being operated(depressed). While there have been improvements in their operatingefficiency, contactless switches, and particularly optical switches,regularly consume significantly more power than basic contact-basedswitches, which consume comparatively negligible current, andparticularly when not activated (e.g., not making contact).

Certain embodiments are directed to a hybrid adaptation of two (or more)switches (see, e.g., FIG. 6) to achieve improved performance, powerefficiency, reliability, longevity, as well as additional functionalitythat would not be practical in single switch implementations. In someaspects, the contact-based switch is used while the input device is in alow power mode. The contact-based switch can be used to “wake” the inputdevice (e.g., change modes from a low power “sleep” or “inactive” modeto a high power “active” mode) with negligible battery consumption. Whenthe contacts of the contact-based switch inevitably begins to wear outit will still generate a signal, but with deleterious effects (see,e.g., FIG. 4C). However, because the signal is only used to wake theinput device, the noisy signal can reliably be used. The contactlessswitch (e.g., optical switch) can be used in the high power mode, thusthe input device benefits from the lower power characteristics of thecontact-based switch when in low power mode, and only uses thecontactless switch (e.g., optical switch) and its higher powerrequirement when in an active mode. The hybrid combination of the twoswitches presents many additional advantages and smart functionality.For instance, in addition to the significant power savings (see also,FIG. 8), other improvements in input device report latency (see, e.g.,FIG. 9A-9D), preemptive triggering (“preemptive clicking”—see, e.g.,FIGS. 10A-10B), and pre-fail detection are possible. While many of theembodiments presented herein are directed to a button (e.g., left orright mouse button) computer mouse, the novel concepts provided hereincan be applied to any input device. For example, hybrid-switch keyboardimplementations are presented in FIGS. 11A-12B.

It is to be understood that this high level summary is presented toprovide the reader with a baseline understanding of some of the novelaspects of the present disclosure and a roadmap to the details thatfollow. This high level summary in no way limits the scope of thevarious embodiments described throughout the detailed description andeach of the figures referenced above are further described below ingreater detail and in their proper scope.

FIG. 1 shows an example of a computer system 100 that can include any ofa variety of host computing devices and computer peripheral devices,including computer peripheral devices (e.g., a computer mouse, keyboard,etc.) that can be configured to perform aspects of the various inventiveconcepts described herein. Computer system 100 shows a user 105operating a host computing device (shown as a desktop computer) 110 anda number of computer peripheral devices communicatively coupled to andintegrated with the host computing device, including a display device120, a computer mouse 130, a keyboard 140, and may include any othersuitable input device. Each computer peripheral device 120-140 can becommunicatively coupled to host computing device 110.

Although the host computing device is shown as a desktop computer, othertypes of host computing devices can be used including gaming systems,laptop computers, set top boxes, entertainment systems, tablet or“phablet” computers, stand-alone head mounted displays (“HMD”), or anyother suitable host computing device (e.g., smart phone, smart wearable,or the like). In some cases, multiple host computing devices may be usedand one or more of the computer peripheral devices may becommunicatively coupled to one or both of the host computing devices(e.g., a computer mouse may be coupled to multiple host computingdevices). A host computing device may also be referred to herein as a“host computer,” “host device,” “computing device,” “computer,” or thelike, and may include a machine readable medium (not shown) configuredto store computer code, such as driver software, firmware, and the like,where the computer code may be executable by one or more processors ofthe host computing device(s) to control aspects of the host computingdevice, for instance via the one or more computer peripheral devices.

A typical computer peripheral device can include any suitable inputdevice, output device or input/output device including those shown(e.g., a computer mouse) and not shown (e.g., remote control, wearables(e.g., gloves, watch, head mounted display), AR/VR controller, CADcontroller, joystick, simulation shifter, stylus device, or othersuitable device that can be used, for example, to convert analog inputsinto digital signals for computer processing. By way of example, acomputer peripheral device (e.g., computer mouse 130) can be configuredto provide control signals for movement tracking (e.g., x-y movement ona planar surface, three-dimensional “in-air” movements, etc.), touchand/or gesture detection, lift detection, orientation detection (e.g.,in 3 degrees-of-freedom (DOF) system, 6 DOF systems, etc.), powermanagement capabilities, input detection (e.g., buttons, scroll wheels,etc.), output functions (e.g., LED control, haptic feedback, etc.), orany of myriad other features that can be provided by a computerperipheral device, as would be appreciated by one of ordinary skill inthe art. The buttons of computer mouse 130 and the keys of keyboard 140(or other depressible element on any input device) may incorporatehybrid switch architectures, as presented herein.

An input device may be a computer peripheral device, and may be referredto as either herein, as well as a “peripheral input device,”“peripheral,” or the like. The majority of the embodiments describedherein generally refer to computer peripheral devices 130-140, howeverit should be understood that a computer peripheral device can be anysuitable input/output (I/O) device (e.g., user interface device, controldevice, input unit, or the like) that may be adapted to utilize thenovel embodiments described and contemplated herein.

A System for Operating a Computer Peripheral Device

FIG. 2 shows a system 200 for operating a computer peripheral device(e.g., computer mouse 130, keyboard 140, etc.), according to certainembodiments. System 200 may be configured to operate any of the computerperipheral devices specifically shown or not shown herein but within thewide purview of the present disclosure. System 200 may includeprocessor(s) 210, memory 220, a power management system 230, acommunication module 240, an input detection module 250, and an outputcontrol module 260. Each of the system blocks 220-260 can be inelectronic communication with processor(s) 210 (e.g., via a bus system).System 200 may include additional functional blocks that are not shownor discussed to prevent obfuscation of the novel features describedherein. System blocks 220-260 (also referred to as “modules”) may beimplemented as separate modules, or alternatively, more than one systemblock may be implemented in a single module. In the context describedherein, system 200 can be incorporated into any input device describedor mentioned herein and may be further configured with any of the hybridswitch implementations presented herein, as described below at leastwith respect to FIGS. 6-12B, as would be appreciated by one of ordinaryskill in the art with the benefit of this disclosure.

In certain embodiments, processor(s) 210 may include one or moremicroprocessors and can be configured to control the operation of system200. Alternatively or additionally, processor(s) 210 may include one ormore microcontrollers (MCUs), digital signal processors (DSPs), or thelike, with supporting hardware and/or firmware (e.g., memory,programmable I/Os, etc.), and/or software, as would be appreciated byone of ordinary skill in the art. Processor(s) 210 can control some orall aspects of the operation of computer peripheral device 150 (e.g.,system block 220-260). Alternatively or additionally, some of systemblocks 220-260 may include an additional dedicated processor, which maywork in conjunction with processor(s) 210. For instance, MCUs, μCs,DSPs, and the like, may be configured in other system blocks of system200. Communications block 240 may include a local processor, forinstance, to control aspects of communication with host computer 110(e.g., via Bluetooth, Bluetooth LE, RF, IR, hardwire, ZigBee, Z-Wave,Logitech Unifying, or other communication protocol). Processor(s) 210may be local to the peripheral device (e.g., contained therein), may beexternal to the peripheral device (e.g., off-board processing, such asby a corresponding host computing device), or a combination thereof.Processor(s) 210 may perform any of the various functions and methods(e.g., methods 600) described and/or covered by this disclosure inconjunction with any other system blocks in system 200. In someimplementations, processor 302 of FIG. 3 may work in conjunction withprocessor 210 to perform some or all of the various methods describedthroughout this disclosure. In some embodiments, multiple processors mayenable increased performance characteristics in system 200 (e.g., speedand bandwidth), however multiple processors are not required, nornecessarily germane to the novelty of the embodiments described herein.One of ordinary skill in the art would understand the many variations,modifications, and alternative embodiments that are possible.

Memory block (“memory”) 220 can store one or more software programs tobe executed by processors (e.g., in processor(s) 210). It should beunderstood that “software” can refer to sequences of instructions that,when executed by processing unit(s) (e.g., processors, processingdevices, etc.), cause system 200 to perform certain operations ofsoftware programs. The instructions can be stored as firmware residingin read-only memory (ROM) and/or applications stored in media storagethat can be read into memory for execution by processing devices (e.g.,processor(s) 210). Software can be implemented as a single program or acollection of separate programs and can be stored in non-volatilestorage and copied in whole or in-part to volatile working memory duringprogram execution. In some embodiments, memory 220 may store datacorresponding to inputs on the peripheral device, such as a detectedmovement of the peripheral device a sensor (e.g., optical sensor,accelerometer, etc.), activation of one or more input elements (e.g.,buttons, sliders, touch-sensitive regions, etc.), or the like. Storeddata may be aggregated and send via reports to a host computing device.

In certain embodiments, memory 220 can store the various data describedthroughout this disclosure. For example, memory 220 can store and/orinclude instructions configured to perform the various hybrid switchcontrolling schemas presented herein, such as methods 800, 890, 950, and1050 of FIGS. 8A, 8B, 9D, and 10B, respectively. Memory 220 can be usedto store any suitable data to perform any function described herein andas would be appreciated by one of ordinary skill in the art with thebenefit of this disclosure. Memory array 220 can be referred to as astorage system or storage subsystem, and can store one or more softwareprograms to be executed by processors (e.g., in processor(s) 210). Itshould be understood that “software” can refer to sequences ofinstructions that, when executed by processing unit(s) (e.g.,processors, processing devices, etc.), cause system 200 to performcertain operations of software programs. The instructions can be storedas firmware residing in read only memory (ROM) and/or applicationsstored in media storage that can be read into memory for processing byprocessing devices. Software can be implemented as a single program or acollection of separate programs and can be stored in non-volatilestorage and copied in whole or in-part to volatile working memory duringprogram execution. From a storage subsystem, processing devices canretrieve program instructions to execute in order to execute variousoperations (e.g., software-controlled switches, etc.) as describedherein.

Power management system 230 can be configured to manage powerdistribution, recharging, power efficiency, haptic motor power control,and the like. In some embodiments, power management system 230 caninclude a battery (not shown), a Universal Serial Bus (USB)-basedrecharging system for the battery (not shown), and power managementdevices (e.g., voltage regulators—not shown), and a power grid withinsystem 200 to provide power to each subsystem (e.g., communicationsblock 240, etc.). In certain embodiments, the functions provided bypower management system 230 may be incorporated into processor(s) 210.Alternatively, some embodiments may not include a dedicated powermanagement block. For example, functional aspects of power managementblock 240 may be subsumed by another block (e.g., processor(s) 210) orin combination therewith. The power source can be a replaceable battery,a rechargeable energy storage device (e.g., super capacitor, LithiumPolymer Battery, NiMH, NiCd), or a corded power supply. The rechargingsystem can be an additional cable (specific for the recharging purpose)or it can use a USB connection to recharge the battery.

Communication system 240 can be configured to enable wirelesscommunication with a corresponding host computing device (e.g., 110), orother devices and/or peripherals, according to certain embodiments.Communication system 240 can be configured to provide radio-frequency(RF), Bluetooth®, Logitech proprietary communication protocol (e.g.,Unifying, Gaming Lightspeed, or others), infra-red (IR), ZigBee®,Z-Wave, or other suitable communication technology to communicate withother computing devices and/or peripheral devices. System 200 mayoptionally comprise a hardwired connection to the corresponding hostcomputing device. For example, input device 130 can be configured toreceive a USB, FireWire®, Thunderbolt®, or other universal-type cable toenable bi-directional electronic communication with the correspondinghost computing device or other external devices. Some embodiments mayutilize different types of cables or connection protocol standards toestablish hardwired communication with other entities. In some aspects,communication ports (e.g., USB), power ports, etc., may be considered aspart of other blocks described herein (e.g., input detection module 250,output control module 260, etc.). In some aspects, communication system240 can send reports generated by the processor(s) 210 (e.g., HID data,streaming or aggregated data, etc.) to a host computing device. In somecases, the reports can be generated by the processor(s) only, inconjunction with the processor(s), or other entity in system 200.Communication system 240 may incorporate one or more antennas,oscillators, etc., and may operate at any suitable frequency band (e.g.,2.4 GHz), etc. One of ordinary skill in the art with the benefit of thisdisclosure would appreciate the many modifications, variations, andalternative embodiments thereof.

Input detection module 250 can control the detection of auser-interaction with input elements (also referred to as “elements”) onan input device. For instance, input detection module 250 can detectuser inputs from motion sensors, keys or buttons (e.g., depressibleelements), roller wheels, scroll wheels, track balls, touch pads (e.g.,one and/or two-dimensional touch sensitive touch pads), click wheels,dials, keypads, microphones, GUIs, touch-sensitive GUIs, proximitysensors (e.g., IR, thermal, Hall effect, inductive sensing, etc.) imagesensor based detection such as gesture detection (e.g., via webcam),audio based detection such as voice input (e.g., via microphone), or thelike, as would be appreciated by one of ordinary skill in the art withthe benefit of this disclosure. Alternatively, the functions of inputdetection module 250 can be subsumed by processor 210, or in combinationtherewith.

In some embodiments, input detection module 250 can detect a touch ortouch gesture on one or more touch sensitive surfaces on input device130. Input detection block 250 can include one or more touch sensitivesurfaces or touch sensors. Touch sensors generally comprise sensingelements suitable to detect a signal such as direct contact,electromagnetic or electrostatic fields, or a beam of electromagneticradiation. Touch sensors can typically detect changes in a receivedsignal, the presence of a signal, or the absence of a signal. A touchsensor may include a source for emitting the detected signal, or thesignal may be generated by a secondary source. Touch sensors may beconfigured to detect the presence of an object at a distance from areference zone or point (e.g., <5 mm), contact with a reference zone orpoint, or a combination thereof. Certain embodiments of computerperipheral device 150 may or may not utilize touch detection or touchsensing capabilities.

Input detection block 250 can include touch and/or proximity sensingcapabilities. Some examples of the types of touch/proximity sensors mayinclude, but are not limited to, resistive sensors (e.g., standardair-gap 4-wire based, based on carbon loaded plastics which havedifferent electrical characteristics depending on the pressure (FSR),interpolated FSR, strain etc.), capacitive sensors (e.g., surfacecapacitance, self-capacitance, mutual capacitance, etc.), opticalsensors (e.g., light barrier type (default open or closed), infraredlight barriers matrix, laser based diode coupled with photo-detectorsthat could measure the time of flight of the light path, etc.), acousticsensors (e.g., piezo-buzzer coupled with microphones to detect themodification of a wave propagation pattern related to touch points,etc.), inductive sensors, magnetic sensors (e.g., Hall Effect, etc.), orthe like.

Input detection module 250 may include a movement tracking sub-blockthat can be configured to detect a relative displacement (movementtracking) of the computer peripheral device 150. For example, inputdetection module 250 optical sensor(s) such as IR LEDs and an imagingarray of photodiodes to detect a movement of computer peripheral device150 relative to an underlying surface. Computer peripheral device 150may optionally include movement tracking hardware that utilizes coherent(laser) light. Moving tracking can provide positional data (e.g., deltaX and delta Y data from last sampling) or lift detection data. Forexample, an optical sensor can detect when a user lifts computerperipheral device 130 off of an underlying surface (also referred to asa “work surface”) and can send that data to processor 210 for furtherprocessing. In some embodiments, processor 210, the movement trackingblock (which may include an additional dedicated processor), or acombination thereof, as would be appreciated by one of ordinary skill inthe art with the benefit of this disclosure.

In certain embodiments, accelerometers can be used for movementdetection. Accelerometers can be electromechanical devices (e.g.,micro-electromechanical systems (MEMS) devices) configured to measureacceleration forces (e.g., static and dynamic forces). One or moreaccelerometers can be used to detect three dimensional (3D) positioning.For example, 3D tracking can utilize a three-axis accelerometer or twotwo-axis accelerometers (e.g., in a “3D air mouse,” HMD, or otherdevice). Accelerometers can further determine if the input device 150has been lifted off of an underlying surface and can provide movementdata that may include the velocity, physical orientation, andacceleration of computer peripheral device 150. In some embodiments,gyroscope(s) can be used in lieu of or in conjunction withaccelerometer(s) to determine movement or input device orientation.

In some embodiments, output control module 260 can control variousoutputs for a corresponding computer peripheral device. For instance,output control module 260 may control a number of visual output elements(e.g., LEDs, LCD screens), displays, audio outputs (e.g., speakers),haptic output systems, or the like. One of ordinary skill in the artwith the benefit of this disclosure would appreciate the manymodifications, variations, and alternative embodiments thereof.

Although certain systems may not be expressly discussed, they should beconsidered as part of system 200, as would be understood by one ofordinary skill in the art. For example, system 200 may include a bussystem to transfer power and/or data to and from the different systemstherein. It should be appreciated that system 200 is illustrative andthat variations and modifications are possible. System 200 can haveother capabilities not specifically described herein. Further, whilesystem 200 is described with reference to particular blocks, it is to beunderstood that these blocks are defined for convenience of descriptionand are not intended to imply a particular physical arrangement ofcomponent parts. Further, the blocks need not correspond to physicallydistinct components. Blocks can be configured to perform variousoperations, e.g., by programming a processor or providing appropriatecontrol circuitry, and various blocks might or might not bereconfigurable depending on how the initial configuration is obtained.

Embodiments of the present invention can be realized in a variety ofapparatuses including electronic devices (e.g., computer peripheraldevices) implemented using any combination of circuitry and software.Furthermore, aspects and/or portions of system 200 may be combined withor operated by other sub-systems as required by design. For example,input detection module 250 and/or memory 220 may operate withinprocessor(s) 210 instead of functioning as a separate entity. Inaddition, the inventive concepts described herein can also be applied toany electronic device. Further, system 200 can be applied to any of thecomputer peripheral devices described in the embodiments herein, whetherexplicitly, referentially, or tacitly described (e.g., would have beenknown to be applicable to a particular computer peripheral device by oneof ordinary skill in the art). The foregoing embodiments are notintended to be limiting and those of ordinary skill in the art with thebenefit of this disclosure would appreciate the myriad applications andpossibilities.

System for Operating a Host Computing Device

FIG. 3 is a simplified block diagram of a host computing device 300,according to certain embodiments. Host computing device 300 canimplement some or all functions, behaviors, and/or capabilitiesdescribed above that would use electronic storage or processing, as wellas other functions, behaviors, or capabilities not expressly described.Host computing device 300 can include a processing subsystem(processor(s)) 302, a storage subsystem 306, user interfaces 314, 316,and a communication interface 312. Computing device 300 can also includeother components (not explicitly shown) such as a battery, powercontrollers, and other components operable to provide various enhancedcapabilities. In various embodiments, host computing device 300 can beimplemented in any suitable computing device, such as a desktop orlaptop computer (e.g., desktop 110), mobile device (e.g., tabletcomputer, smart phone, mobile phone), wearable device, media device, orthe like, or in peripheral devices (e.g., keyboards, etc.) in certainimplementations.

Processor(s) 302 can include MCU(s), micro-processors, applicationspecific integrated circuits (ASICs), digital signal processors (DSPs),digital signal processing devices (DSPDs), programmable logic devices(PLDs), field programmable gate arrays (FPGAs), processors, controllers,micro-controllers, microprocessors, or electronic units designed toperform a function or combination of methods, functions, etc., describedthroughout this disclosure.

Storage subsystem 306 can be implemented using a local storage and/orremovable storage medium, e.g., using disk, flash memory (e.g., securedigital card, universal serial bus flash drive), or any othernon-transitory storage medium, or a combination of media, and caninclude volatile and/or non-volatile storage media. Local storage caninclude a memory subsystem 308 including random access memory (RAM) 318such as dynamic RAM (DRAM), static RAM (SRAM), synchronous dynamic RAM(e.g., DDR), or battery backed up RAM or read-only memory (ROM) 320, ora file storage subsystem 310 that may include one or more code modules.In some embodiments, storage subsystem 306 can store one or moreapplications and/or operating system programs to be executed byprocessing subsystem 302, including programs to implement some or alloperations described above that would be performed using a computer. Forexample, storage subsystem 306 can store one or more code modules forimplementing one or more method steps described herein.

A firmware and/or software implementation may be implemented withmodules (e.g., procedures, functions, and so on). A machine-readablemedium tangibly embodying instructions may be used in implementingmethodologies described herein. Code modules (e.g., instructions storedin memory) may be implemented within a processor or external to theprocessor. As used herein, the term “memory” refers to a type of longterm, short term, volatile, nonvolatile, or other storage medium and isnot to be limited to any particular type of memory or number of memoriesor type of media upon which memory is stored.

Moreover, the term “storage medium” or “storage device” may representone or more memories for storing data, including read only memory (ROM),RAM, magnetic RAM, core memory, magnetic disk storage mediums, opticalstorage mediums, flash memory devices and/or other machine readablemediums for storing information. The term “machine-readable medium”includes, but is not limited to, portable or fixed storage devices,optical storage devices, wireless channels, and/or various other storagemediums capable of storing instruction(s) and/or data.

Furthermore, embodiments may be implemented by hardware, software,scripting languages, firmware, middleware, microcode, hardwaredescription languages, and/or any combination thereof. When implementedin software, firmware, middleware, scripting language, and/or microcode,program code or code segments to perform tasks may be stored in amachine readable medium such as a storage medium. A code segment (e.g.,code module) or machine-executable instruction may represent aprocedure, a function, a subprogram, a program, a routine, a subroutine,a module, a software package, a script, a class, or a combination ofinstructions, data structures, and/or program statements. A code segmentmay be coupled to another code segment or a hardware circuit by passingand/or receiving information, data, arguments, parameters, and/or memorycontents. Information, arguments, parameters, data, etc. may be passed,forwarded, or transmitted by suitable means including memory sharing,message passing, token passing, network transmission, etc. Thesedescriptions of software, firmware, storage mediums, etc., apply tosystems 200 and 300, as well as any other implementations within thewide purview of the present disclosure. In some embodiments, aspects ofthe invention (e.g., surface classification) may be performed bysoftware stored in storage subsystem 306, stored in memory 220 of acomputer peripheral device, or both. One of ordinary skill in the artwith the benefit of this disclosure would appreciate the manymodifications, variations, and alternative embodiments thereof.

Implementation of the techniques, blocks, steps and means describedthroughout the present disclosure may be done in various ways. Forexample, these techniques, blocks, steps and means may be implemented inhardware, software, or a combination thereof. For a hardwareimplementation, the processing units may be implemented within one ormore ASICs, DSPs, DSPDs, PLDs, FPGAs, processors, controllers,micro-controllers, microprocessors, other electronic units designed toperform the functions described above, and/or a combination thereof.

Each code module may comprise sets of instructions (codes) embodied on acomputer-readable medium that directs a processor of a host computingdevice 110 to perform corresponding actions. The instructions may beconfigured to run in sequential order, in parallel (such as underdifferent processing threads), or in a combination thereof. Afterloading a code module on a general purpose computer system, the generalpurpose computer is transformed into a special purpose computer system.

Computer programs incorporating various features described herein (e.g.,in one or more code modules) may be encoded and stored on variouscomputer readable storage media. Computer readable media encoded withthe program code may be packaged with a compatible electronic device, orthe program code may be provided separately from electronic devices(e.g., via Internet download or as a separately packaged computerreadable storage medium). Storage subsystem 306 can also storeinformation useful for establishing network connections using thecommunication interface 312.

Computer system 300 may include user interface input devices 314elements (e.g., touch pad, touch screen, scroll wheel, click wheel,dial, button, switch, keypad, microphone, etc.), as well as userinterface output devices 316 (e.g., video screen, indicator lights,speakers, headphone jacks, virtual- or augmented-reality display, etc.),together with supporting electronics (e.g., digital to analog or analogto digital converters, signal processors, etc.). A user can operateinput devices of user interface 314 to invoke the functionality ofcomputing device 300 and can view and/or hear output from computingdevice 300 via output devices of user interface 316.

Processing subsystem 302 can be implemented as one or more processors(e.g., integrated circuits, one or more single core or multi coremicroprocessors, microcontrollers, central processing unit, graphicsprocessing unit, etc.). In operation, processing subsystem 302 cancontrol the operation of computing device 300. In some embodiments,processing subsystem 302 can execute a variety of programs in responseto program code and can maintain multiple concurrently executingprograms or processes. At a given time, some or all of a program code tobe executed can reside in processing subsystem 302 and/or in storagemedia, such as storage subsystem 304. Through programming, processingsubsystem 302 can provide various functionality for computing device300. Processing subsystem 302 can also execute other programs to controlother functions of computing device 300, including programs that may bestored in storage subsystem 304.

Communication interface (also referred to as network interface) 312 canprovide voice and/or data communication capability for computing device300. In some embodiments, communication interface 312 can include radiofrequency (RF) transceiver components for accessing wireless datanetworks (e.g., Wi-Fi network; 3G, 4G/LTE; etc.), mobile communicationtechnologies, components for short range wireless communication (e.g.,using Bluetooth communication standards, NFC, etc.), other components,or combinations of technologies. In some embodiments, communicationinterface 312 can provide wired connectivity (e.g., universal serial bus(USB), Ethernet, universal asynchronous receiver/transmitter, etc.) inaddition to, or in lieu of, a wireless interface. Communicationinterface 312 can be implemented using a combination of hardware (e.g.,driver circuits, antennas, modulators/demodulators, encoders/decoders,and other analog and/or digital signal processing circuits) and softwarecomponents. In some embodiments, communication interface 312 can supportmultiple communication channels concurrently.

User interface input devices 314 may include any suitable computerperipheral device (e.g., computer mouse, keyboard, gaming controller,remote control, stylus device, etc.), as would be appreciated by one ofordinary skill in the art with the benefit of this disclosure. Userinterface output devices 316 can include display devices (e.g., amonitor, television, projection device, etc.), audio devices (e.g.,speakers, microphones), haptic devices, etc. Note that user interfaceinput and output devices are shown to be a part of system 300 as anintegrated system. In some cases, such as in laptop computers, this maybe the case as keyboards and input elements as well as a display andoutput elements are integrated on the same host computing device. Insome cases, the input and output devices may be separate from system300, as shown in FIG. 1. One of ordinary skill in the art with thebenefit of this disclosure would appreciate the many modifications,variations, and alternative embodiments thereof.

It will be appreciated that computing device 300 is illustrative andthat variations and modifications are possible. A host computing devicecan have various functionality not specifically described (e.g., voicecommunication via cellular telephone networks) and can includecomponents appropriate to such functionality. While the computing device300 is described with reference to particular blocks, it is to beunderstood that these blocks are defined for convenience of descriptionand are not intended to imply a particular physical arrangement ofcomponent parts. For example, processing subsystem 302, storagesubsystem 306, user interfaces 314, 316, and communications interface312 can be in one device or distributed among multiple devices. Further,the blocks need not correspond to physically distinct components. Blockscan be configured to perform various operations, e.g., by programming aprocessor or providing appropriate control circuitry, and various blocksmight or might not be reconfigurable depending on how an initialconfiguration is obtained. Embodiments of the present invention can berealized in a variety of apparatus including electronic devicesimplemented using a combination of circuitry and software. Hostcomputing devices or even peripheral devices described herein can beimplemented using system 300.

Contact-Based Switches

In the present computer peripheral market (e.g., computer mouse andkeyboard devices), click detection (e.g., detecting when a depressibleelement such as a left/right button or key is depressed) is primarilybased on contact-based switches (e.g., galvanic/electric), where aphysical contact between two elements causes the input device togenerate a control signal. Contact-based switches typically utilizegalvanic isolation, which involves isolating functional sections ofelectrical systems to prevent current flow such that no directconduction path is possible. In other words, when the physical switch isclosed, electric current flows and a signal is typically generated suchas a button press signal or other suitable human interface device (HID)signal, as would be appreciated by one of ordinary skill in the art withthe benefit of this disclosure. When the switch is open, no electriccurrent flows and typically no HID signal is generated. Contact-basedswitches have been in use for many decades and have been steadilyimproved for better longevity, reliability, and price over the years.Contact-based switches also have excellent power efficiency. While theswitch is open (e.g., while the button is at rest and is not beingdepressed or activated), there is effectively no current flow andpractically zero power dissipation (e.g., ignoring negligible micro-amprange leakage currents, etc.). While the switch is closed, which istypically at millisecond range durations, the operating current andcorresponding power dissipation is still relatively very low (e.g.,100-400 μA or the like). Despite the excellent power dissipationcharacteristics, contact-based switches, like any type of switch, aresubject to repeated mechanical impact and after some time the contactsmechanically or chemically wear out resulting in noisy data that may beunreliable or unusable, which can render the corresponding input deviceat least partially inoperable and unfit for its intended use. Accordingto certain embodiments, a hybrid switch approach (see, e.g., FIG. 6) canpresent a superior depressible element structure that incorporatesaspects of a contact-based switch with a second switch (e.g., acontactless switch) that takes advantage of the excellent powerdissipation characteristics of the contact-based switch, whilemitigating its weakness in longevity, as further described below withrespect to FIG. 6.

FIG. 4A shows a cross-section of a simplified example of a contact-basedswitch 400 for an input device. Contact-based switch 400 can include ahousing 410, actuator 420, biasing mechanism 430, terminal section 440,and contact 450. Housing 410 is configured to contain and protect theinternal mechanisms of switch 400 providing electrical insulation andmechanical integrity. Housing 410 may be a self-contained subassembly ofan input device (e.g., computer mouse, keyboard, etc.), although someembodiments may employ multiple switches in a shared housing, such asthe type used in hybrid switch 600, as further described below withrespect to FIG. 6.

Actuator 420 can be configured to transfer a movement and externalimparted force to the internal mechanism of switch 400. For example, auser may press actuator 420 directly or indirectly (e.g., via a button,key cap, etc., coupled to actuator 420) to cause actuator 420 to moveaccording to a linear translational path and impart a force onto biasingmechanism 430. In some aspects, the depressible element can be the keyor button in combination with actuator 420, as would be appreciated byone of ordinary skill in the art with the benefit of this disclosure.Actuator 420 may be comprised of multiple elements, including userinterface elements (e.g., mouse button, key cap, etc.) and internalelements to better transfer force to internal components. Referring toFIG. 4A, the bottom portion of actuator 420 is dome-shaped where itcontacts biasing mechanism 430. Any suitable shape or number of elementscan be used as would be appreciated by one of ordinary skill in the artwith the benefit of this disclosure.

Biasing mechanism 430 can be a conductive spring configured to perform asnap action when the actuator is depressed. Biasing mechanism istypically comprised of or includes a conductive material (e.g., copper,gold, aluminum, silver, iron, zinc, or allow thereof, etc.) to conductelectricity. Actuator 420 typically imparts a user-induced force (e.g.,from a button or key press) onto the biasing mechanism on a first end,which may cause biasing mechanism 430 to move a contact 450 on a secondend of biasing mechanism 430 to move from a first position—an opencircuit condition with contact 450 contacting terminal A as shown inFIG. 4A, to a second position—a closed circuit condition with contact450 contacting terminal B. In some cases, the first position maycorrespond to the depressible element (e.g., actuator 420 andcorresponding elements) being non-pressed to a particular position orwithin a range of positions such that contact 450 does not come intoelectrical contact with terminal B, and the second position maycorrespond to the depressible element being depressed enough to causecontact 450 to make electrical contact with terminal B. Biasingmechanism 430 may further provide a restoring force to actuator 420causing it to return from the second position back to the firstposition. Terminal section 440 can connect switch 400 to externalcircuitry. For instance, when contact 450 is contacting terminal A, acorresponding terminal (e.g., the right-side terminal of FIG. 4A) maycouple terminal A to an external circuit, bus, or the like (e.g., signalground), and when contact 450 is contacting terminal B, a correspondingterminal (e.g., the middle terminal of FIG. 4A) may couple terminal B toanother external circuit, bus, or the like (e.g., signal output). Whenapplied to a hybrid switch circuit, as further described below, movingactuator 420 to cause contact 450 to come into electrical contact withterminal B may cause switch 400 to generate a signal, as shown in FIG.4B or FIG. 4C (e.g., when contact 450 and terminals A and B are worn outand do not make a good electrical coupling). FIG. 4A provides onesimplified embodiments of a contact-based switch and one of ordinaryskill in the art with the benefit of this disclosure would appreciatethe many modifications, variations, and alternative embodiments thereof.

FIG. 4B is a signal diagram 480 showing an example of a typical signal481 corresponding to a click event by a properly functioningcontact-based switch. Signal 481 switches from low voltage (e.g.,electrical ground) 482 to a higher voltage (e.g., rail voltage) 489 whencontact 450 makes electrical contact with terminal B. A typicalcontact-based switch in good condition (e.g., no considerablewear-and-tear) literally bounces briefly when contact is made, whichtypically last about 2-5 μs micro/milliseconds, and manifests in thesignal as a signal ripple 488. This occurs during normal operation andtypically does not affect the ability to decipher single click, doubleclick, click-and-hold, or other common types of button inputs, howeverdebouncing algorithms to interpret and account of bouncing may add somelatency to detection (e.g., 1 ms or more). A clean, fully transitionedsignal 489 occurs after the bouncing decays at threshold 486 (e.g.,typically 2 V, 3.3 V, or the like). With a “good” contact, the bouncingmay last approximately 0.7 ms and typically less than 1-2 ms. A typicalclick from a user may be as short as 30 ms, thus 1 ms bouncing is ofteninconsequential when trying to ascertain the intended input (e.g.,single click, double click, etc.).

FIG. 4C shows an example of a possible signal corresponding to a clickevent by an improperly functioning contact-based switch. As can be seenin FIG. 4C, signal 491 is noisy and does not show a clean transitionbetween a low and high voltage in response to the depressible elementbeing pressed and causing contact 450 to make contact with terminal B.Signal 491 transition from a low voltage 492 to a relatively long periodof signal noise 498 until a solid high voltage signal 499 is recognizedat threshold 496. It is unclear whether the noise includes ripple, if adouble click occurred, etc., and an unreliable output may result. Thedeleterious noise occurs for approximately 300 ms. Since a typical userclick may take approximately 30 ms, it can be plainly seen howinterpreting a user input (e.g., click, double click, click-and-hold,etc.) can be misinterpreted, and in some cases the noise may notactually be related to a user input at all. FIG. 4C is indicative ofsome contact-based switches with substantial wear-and-tear on thecontact and/or the corresponding terminals, which can limit theoperational life of the input device, as noted above.

Contactless Switches

In light of the longevity and reliability problems typically associatedwith contact-based switches, some contemporary manufacturers havechanged to contactless switches. Contactless switch typically does nothave mechanically interfacing elements (no contacts) during operationand can have a substantially longer operational life since there are nocritical components subject to wear-and-tear. Thus, contactless switchescan provide very clean signals to allow the input device to have alonger operational life. Some non-limiting examples of contactlessswitches include optical switches (described in embodiments herein),magnetic switches, inductive switches, capacitive switches, piezoswitches, and the like. In addition, because contactless switches do notinvolve a physical contact between elements, no additional latency isneeded to apply debouncing algorithms, and the like. Despite theseadvantages, contactless switches (e.g., optical switches) can consumesignificantly more current than a contact-based switch as they have tobe actively “checked” periodically to confirm whether the switch is openor closed.

FIG. 5A shows an example of an operation of an optical switch sensor 500with a default-open configuration, according to certain embodiments.Optical switch sensor (“optical switch”) 500 can include an emitter 520,a receiver 530, and a barrier 510 that is typically directly orindirectly coupled to an actuator (e.g., similar to actuator 420) tomove up and down in correspondence with the movements of the depressibleelement. Barrier 510 can also be referred to as a “shutter.” Typically,barrier 510 can move from a first position that does not obstruct aline-of-sight between emitter 520 and receiver 530 and a second positionthat obstructs the line-of-sight. Barrier 510 may provide an analog-likeoperation by allowing a user to adjust a position of barrier 510 bymodulating an amount of obstruction that can range from completeobstruction, to some obstruction, to no obstruction. In operation,emitter 520 typically includes a light emitting diode (LED) that ispulsed (e.g., 20-50 μs) at an LED current (e.g., 5-6 mA) and a fixedfrequency (e.g., 1 ms), which is typical in contemporary high-end gamingperipherals (e.g., computer mice and keyboards). The light 525 isprojected from emitter 520 towards receiver 530, which can be aphototransistor or other light-sensing element. The amount of currentgenerated by receiver 530 can correspond to an amount of light 525received from emitter 520. Unlike contact-based switches, whichtypically have a binary output including an “on” (closed circuit) or“off” (open circuit) operation, contactless switches may allow no light,some light, or all light emitted from emitter 520 to reach receiver 530,thus allowing any number of intermediary settings and can allow a userto set an “on” condition to any suitable actuation threshold (e.g.,corresponding output from receiver 530), which can correspond to how fara button or key needs to be pressed to instantiate a click, as furtherdiscussed below with respect to FIGS. 10A-10B. Referring back to FIG.5A, optical switch 500 is in a normally open configuration where theswitch allows light 525 emitted from emitter 520 to reach receiver 530unobstructed when the actuator that controls barrier 510 is not pressed,and blocks the light 525 from emitter 520 when the actuator isdepressed.

FIG. 5B shows a switch 550 with a normally-closed configuration wherethe switch blocks light 575 emitted from emitter 570 to reach receiver580 when the actuator that controls barrier 560 is not pressed, andallows the light 575 from emitter 570 to reach receiver 580 when theactuator is depressed. In either configuration, despite the advantagesof having a clean signal (e.g., no bouncing or corresponding latency todebounce), an ability to set an actuation threshold, and substantiallyimproved longevity over contact-based switches, contactless switchesutilize power at all times, even when the depressible element is notpressed in order to detect when the state of the button in an acceptablyfast time (e.g., within 1 ms), and thus utilizes substantially morepower than contact-based switches.

Hybrid Switches

Aspects of the invention use a hybrid switch design (e.g., hybrid switch600) that utilizes both a contact-based switch and a contactless switchto create an improved switch design that gains the benefits of bothtypes of switches and mitigates their drawbacks. In some embodiments,the contact-based switch may be used when the input device is in a lowpower mode to take advantage of its low power consumptioncharacteristics, as described above. The contact-based switch can thenwake the mouse (in response to a click) very low power consumption. Insome aspects, a leading edge 484 of a signal 481 (or another portionthereof) can be used to trigger the wake function and cause the inputdevice to switch from a low power mode of operation to an active, higherpower mode of operation. Even when the contact-based switch begins tofail and produces noisy and potentially undecipherable signals as a userinput (e.g., click, double click, click-and-hold, etc.), as shown insignal 491, the rising edge 494 may be used simply as a binary triggerto cause the input device to switch from the low power (sleep) mode tothe active (wake) mode. Thus, any amount of noise can be present on thesignal as a result of a button press event and a faulty contact-basedswitch can still be reliably used to trigger a state change because asimple rising edge, though poorly rendered, can still be reliablygenerated.

The contactless switch may also be used in the same hybrid switcharchitecture and may be configured to be activated while in the highpower mode, which can take advantage of its excellent reactivity andreliability characteristics and avoid much of its higher powerconsumption drawbacks by keeping the contactless switch off during lowpower sleep modes and on only during active modes. Thus, the hybridswitch uses the contact-based switch during sleep mode, which has verylow power requirements, and utilizes its contact signal (e.g., a leadingrising edge) to activate the contactless switch and cause the inputdevice to enter an active mode. In some embodiments, the signal from thecontact-based switch is not used to interpret user inputs (e.g., clicks,double clicks, etc.), and is only used to change the operational state(e.g., sleep mode, active mode) of the input device. In someembodiments, the contact-based switch can be used to interpret userinputs and the contactless switch can be used to confirm them (e.g., thecontactless switch may confirm that what appears to be a click from thecontact-based switch data also appears to be a click based on thecontactless switch data. This “interrupt” approach may provide furtherimproved power consumption as the optical switch is only used when aclick is detected on the contact-based switch, rather than the formermethod where the optical switch stays on after detecting a signal fromthe contact-based switch (and subsequently goes inactive after a periodof inactivity). In addition to the clear power advantages andreliability of hybrid switch implementations, other functional modes ofoperation are possible that would otherwise be impractical with a singleswitch implementation. For instance, some embodiments can improvelatencies inherent in typical device report protocols and allow forpreemptive clicking and faster performance, as further described belowat least with respect to FIGS. 9A-10. Although the many embodimentsdescribed and depicted in the present application typically combine acontact-based switch and a contactless switch in a hybrid-switchapplication, it should be understood that any types of switches can beused including two contact-based switches, two contactless-typeswitches, more than two switches of any combination, or the like.Furthermore, some of the embodiments described herein describe a hybridswitch with two switches in the same package (e.g., see FIG. 6). Itshould be understood that some embodiments may employ switches inseparate packages. One of ordinary skill in the art with the benefit ofthis disclosure would appreciate the many modifications, variations, andalternative embodiments thereof.

FIG. 6 is an example of a hybrid switch 600 for an input device,according to certain embodiments. Hybrid switch 600 can include fronthold and front electronic contact 610, an actuator 620, a biasingmechanism 630 with a mechanical contact 635, and a rear electricalcontact 640, thus forming a contact-based switch, which can operatesimilar to contact-based switch 400. Hybrid switch 600 can furtherinclude an optical sensor 650 including a photodiode andphoto-transistor, which can operate similar to the contactless switch ofFIG. 5B. In operation, as actuator 620 (coupled to a depressibleelement) is depressed by a user, biasing mechanism 630 is moved down tosimultaneously cause contact 635 to be in electrical contact with rearelectrical contact 640 and cause barrier 655 to block light from thephotodiode and prevent it from reaching the photo-transistor. Thus, boththe contact-based switch and the contactless switch can generate asignal indicating that the depressible element is depressed by athreshold distance to generate a “click,” or more generally “eventdata,” which can include any suitable output data (e.g., click, doubleclick, etc.). More specifically, in the contact-based switch, whencontact 635 electrically couples to rear electrical contact 640, anelectrical circuit is closed allowing current from the front electricalcontact 610 to flow through biasing mechanism 630, contact 635, to rearelectrical contact 640, and out through the terminals (not shown).Hybrid switch 600 can be similar to the topology of contact-based switch400 but with the additional rear electrical contact and optical sensor650.

In some embodiments, the contact-based and contactless switches may bothgenerate a signal (e.g., a click or key press) when the depressibleelement and corresponding actuator 620 is depressed by a thresholddistance. In some aspects, the contact-based signal only operates as atrigger to wake the contactless switch and is not used to register anevent (e.g., click). In some aspects, the contactless switch can be usedto validate a contact-based signal triggered while in a sleep or wake(active) state. In some embodiments, although the biasing mechanism maybe used to configure activation of the contact-based switch andcontactless switch, in some cases the contactless-based switch can beconfigured for preemptive activation, as further described below withrespect to FIGS. 10A-10B.

By way of example, some embodiments of an input device (e.g., computermouse 130, keyboard 140) may include one or more processors 210 and adepressible element (a button or key coupled to actuator 620) includingtwo switches including a first switch (e.g., electric or galvaniccontact-based switch) configured to generate a first signal when thedepressible element is depressed by a threshold distance and a secondswitch (e.g., contactless switch, such as an optical, capacitive,inductive, magnetic, or piezo type) configured to generate a secondsignal indicating when the depressible element is depressed by thethreshold distance and the second switch is in an active state. The oneor more processors can be communicatively coupled to the first switchand the second switch and may be configured to receive the first signalfrom the first switch, configure the second switch to change from aninactive state to an active state in response to receiving the firstsignal (e.g., a rising edge), receive the second signal from the secondswitch in the active state, determine whether the second signalindicates that the depressible element is depressed by the thresholddistance, and generate event data (e.g., click, double click, etc.)confirming that the depressible element is depressed by the thresholddistance in response to receiving the second signal indicating that thedepressible element is depressed by the threshold distance. In certainembodiments, when the second switch is in the active state, the secondswitch operates in a first power mode (e.g., active mode) and the secondswitch is configured to continuously or intermittently detect whetherthe depressible element is depressed by the threshold distance. In someaspects, when the second switch is in the inactive state, the secondswitch operates in a second power mode (e.g., sleep state) and thesecond switch does not detect whether the depressible element isdepressed by the threshold distance. In such cases, the second switchmay consume at least 50% more power when in the first power mode thanwhen in the second power mode. When in the active state, the secondswitch can detects whether the depressible element is depressed by thethreshold distance at a frequency of at least 1 kHz. The second switchcan be in an inactive state by default until switched to the activestate in response to the one or more processors receiving the firstsignal. The one or more processors may cause the second switch to switchfrom the active state to the inactive state after a threshold time ofinactivity where the depressible element is not depressed. In someembodiments, differences between the two sensing types can be used toglean more information on the click characteristic from the user. Forexample, the timing difference between the optical and galvanic switchescan provide information about the speed of the click, which can provideinformation about click velocity (e.g., how fast a user pushes the keydown), which can be used to instantiate different effects (e.g., controla magnitude of a click-controlled parameter based on the detected speedof the click).

FIG. 7 is an example of a simplified electrical circuit diagram 700 toimplement aspects of a hybrid switch 710, according to certainembodiments. There are a number of ways of controlling a hybrid switch710 in the manner described above, including a mostly electronic designand through embedded software. In certain implementations of electronicdesigns, both the contact and contactless switch can be connected inparallel, such that either switch when triggered pulls the line down andcauses the “click” event. The hybrid switch 710 may include a contactbased switch SW (e.g., electrically accessible via pins 5 and 6) and acontactless switch (e.g., including an LED with electrically accessiblepoints 3 and 4 at the cathode and anode, respectively; and aphototransistor Q₃ (e.g., bipolar junction transistor (BJT),field-effect transistor (FET), etc.) with electrically accessible pointsat pins 2 and 1 at the emitter and collector, respectively) in the samepackage. In an embedded software approach, both electrical (pin 5) andphototransistor output (pin 1) can be connected to the MCU (processor(s)210), which can manage the status of each switch independently.

Referring to circuit diagram 700, a current mirror comprisingtransistors Q₁ and Q₂ (e.g., BJTs, FETs, etc.) is configured forprecision control over a current driving the LED of an optical switch ofhybrid switch 710, which drives the base of Q₃. When Q₃ is sufficientlybiased it may pull SW_OUT low. Similarly, when SW is closed, SW_OUT ispulled low (e.g., at or near electrical ground). An SW_OUT low conditionmay trigger a “click” event. Although an optical switch and a mechanicalswitch are shown in the same package of a hybrid switch, it should beunderstood that any suitable combination of a contactless switch andcontact-based switch can be implemented in the same package to form ahybrid switch, as described herein. In some embodiments, twocontact-based switches or two contactless switches can be used instead,preferably with operational characteristics that take advantage of thepower savings, accuracy, longevity, and other advantages described inthe various embodiments throughout the present disclosure. One ofordinary skill in the art with the benefit of this disclosure wouldappreciate the many modifications, variations, and alternativeembodiments thereof.

FIG. 8A is a simplified flow chart of a method 800 showing how a hybridswitch implementation can be used for improved power efficiency in aninput device, according to certain embodiments. Method 800 can beperformed by processing logic that may comprise hardware (circuitry,dedicated logic, etc.), software operating on appropriate hardware (suchas a general purpose computing system or a dedicated machine), firmware(embedded software), or any combination thereof. In certain embodiments,method 800 can be performed by aspects of system 200, system 300, hybridswitch 600, circuit 700, or a combination thereof, as would beappreciated by one of ordinary skill in the art with the benefit of thisdisclosure.

At operation 810, method 800 can include detecting whether the inputdevice is operating in a low power (sleep) mode, according to certainembodiments. At operation 820, method 800 can include scanning thecontact-based switch (e.g., a first switch—electric/galvanic type) todetermine if a transition is detected in response to detecting whetherthe input device is operating in the low power mode, according tocertain embodiments. At operation 830, method 800 can includedetermining whether a transition is detected (e.g., whether thecontact-based switch indicates a click, key press, or other eventcorresponding to contact 635 making electrical contact with rearelectrical contact 640) based on the scanning of the contact-basedswitch, according to certain embodiments. When no transition isdetected, method 800 returns to operation 810.

When a transition is detected or a low power mode is not detected atoperation 810, method 800 can include causing the input device to switchto a high power active mode (operation 840), according to certainembodiments. In the high power active mode (operation 850), a secondswitch (optical switch) scans at a particular rate (e.g., preferablyless than or equal to 1 ms) and if a click is detected (operation 860),a report click can be reported (operation 880), according to certainembodiments. If a click is not reported during the scan period, method800 can include determining whether no click has occurred for apredetermined time (e.g., 1-10 s for performance modes, 100 ms in modeswhere latency is less important than power efficiency) (operation 870).If a click has been reported within the predetermined time period, thenmethod 800 returns to operation 840 and the input device remains in thehigh power mode. If a click has not been reported within thepredetermined time period, method 800 returns to the low power mode(operation 810).

It should be appreciated that the specific steps illustrated in FIG. 8Aprovide a particular method 800 for showing how a hybrid switchimplementation can be used to improve power efficiency in an inputdevice, according to certain embodiments. Other sequences of steps mayalso be performed according to alternative embodiments. Furthermore,additional steps may be added or removed depending on the particularapplications. Any combination of changes can be used and one of ordinaryskill in the art with the benefit of this disclosure would understandthe many variations, modifications, and alternative embodiments thereof.

Furthermore, in certain embodiments of FIG. 8A, the method may operateas a “main loop” implementation running at a fixed period (e.g., 1 ms).However, in some cases, firmware may be partially or completelyinterrupt based, as presented in the embodiment of FIG. 8B below. Insuch cases, the system may wait for an interrupt from the contact-basedswitch which triggers the scanning of the contactless (e.g., optical)switch, which can confirm the click, report it to the host, and thenstop. The next interrupt can be the release of the click (and seen bythe contact switch), which again can be confirmed by the contactlessswitch, which can then go back to a “wait” mode. Some implementationsmay be configured to incorporate different aspects of both of theseapproaches (e.g., methods 800 and 890). For instance, the system can bein the interrupt mode (e.g., low power mode with higher latency) and ina “pulling” mode to guarantee a fixed and controlled latency. One ofordinary skill in the art with the benefit of this disclosure wouldappreciate the many modifications, variations, and alternativeembodiments thereof.

FIG. 8B is another simplified flow chart of a method 890 showing how ahybrid switch implementation can be used for improved power efficiencyin an input device, according to certain embodiments. Method 890 can beperformed by processing logic that may comprise hardware (circuitry,dedicated logic, etc.), software operating on appropriate hardware (suchas a general purpose computing system or a dedicated machine), firmware(embedded software), or any combination thereof. In certain embodiments,method 890 can be performed by aspects of system 200, system 300, hybridswitch 600, circuit 700, or a combination thereof, as would beappreciated by one of ordinary skill in the art with the benefit of thisdisclosure.

At operation 891, method 800 can include receiving a first signal from afirst switch of the input device, the first switch configured togenerate the first signal when a depressible element of the input deviceis depressed by a threshold distance, according to certain embodiments.The first switch can be an electrical/galvanic contact-based switch. Theinput device can be a computer mouse where the depressible element is abutton on the computer mouse, a keyboard where the depressible elementis a key on the keyboard, or other suitable input device includingmedical devices, internet-of-things devices, gaming devices, homeentertainment devices, fitness devices, or any suitable input devicewith input elements that can be configured to incorporate the myriadhybrid switch implementations described herein, including but notlimited to the types of input devices described above (but notnecessarily shown) with respect to FIG. 1.

At operation 892, method 800 can include configuring a second switch ofthe input device to change from an inactive state to an active state inresponse to receiving the first signal, according to certainembodiments. The second switch can be one of an optical, capacitive,inductive, piezo, or magnetic type contactless switch.

At operation 893, method 800 can include receiving a second signal fromthe second switch when the second switch is in the active state, thesecond signal indicating whether the depressible element is depressed bythe threshold distance, according to certain embodiments.

At operation 894, method 800 can include determining whether the secondsignal indicates that the depressible element is depressed by thethreshold distance, according to certain embodiments.

At operation 895, method 800 can include generating event dataconfirming that the depressible element is depressed by the thresholddistance in response to receiving the second signal that indicates thatthe depressible element is depressed by the threshold distance,according to certain embodiments. In some aspects, the second switch isconfigured to change from an inactive state to an active state inresponse to receiving a first rising edge of the first signal. In somecases, when the second switch is in the active state, the second switchoperates in a first power mode and the second switch is configured tocontinuously or intermittently detect whether the depressible element isdepressed by the threshold distance. In some implementations, when thesecond switch is in the inactive state, the second switch operates in asecond power mode and the second switch does not detect whether thedepressible element is depressed by the threshold distance. Typically,the second switch consumes at least 50% more power when in the firstpower mode than when in the second power mode, and in many cases morethan 90% more power. To put in context, an optical switch may operate inthe range of 0.4 mW when active and operating (e.g., activated during aclick) frequently, while a galvanic switch is typically around 20 μW. Insome embodiments, when the second switch is in the active state, thesecond switch detects whether the depressible element is depressed bythe threshold distance at a frequency of at least 1 kHz (checks every 1ms or faster). In some cases, the second switch is in the inactive stateby default until switched to the active state in response to receivingthe first signal. In certain embodiments, the second switch switchesfrom the active state to the inactive state after a threshold time ofinactivity where the depressible element is not depressed.

It should be appreciated that the specific steps illustrated in FIG. 8Bprovide a particular method 890 for showing how a hybrid switchimplementation can be used for improved power efficiency in an inputdevice, according to certain embodiments. Other sequences of steps mayalso be performed according to alternative embodiments. Furthermore,additional steps may be added or removed depending on the particularapplications. Any combination of changes can be used and one of ordinaryskill in the art with the benefit of this disclosure would understandthe many variations, modifications, and alternative embodiments thereof.

Latency Reduction in Device Reports

In a typical input device, such as a computer mouse, a click status maybe checked at every embedded software main loop, as would be appreciatedby one of ordinary skill in the art with the benefit of this disclosure.The loop is typically running at 1 kHz to match the communicationprotocol (e.g., USB or Logitech Unifying) at 1 ms per cycle or faster.

FIG. 9A is a simplified timing diagram showing aspects of how an inputdevice performs certain status checks and device reports, according tocertain embodiments. Each cycle is 1 ms (e.g., SW loop running at 1kHz). Near the end of each cycle, a device report (e.g., 920 a-c) isaggregated and sent to a remote host computing device is electroniccommunication with the input device (see, e.g., FIG. 1). The devicereport is sent near the end of each cycle to capture the majority ofinput device operations (e.g., button presses, movement detection, etc.)before sending the device report to the host computing device. A switchstatus check (e.g., 910 a-c) may be performed near the beginning of theSW loop or at any other suitable timing arrangement. A physical buttonpress or other event may span 10 ms or longer, so the switch statuscheck 910 may capture the same button press over many subsequent SW loopcycles, according to certain embodiments. Referring to FIG. 9B, a clickevent 930 occurs during the first period, but after the switch statuscheck 910 a. As such, the input device may not be aware of the clickuntil the next switch status check 910 b, which occurs after the firstdevice report is sent. In such cases, the click event may not beregistered by the host computing device until up to 2 ms later (forclick events occurring immediately after a switch status check) in atypical case of a 1 kHz report rate. A typical approach to limit thistype of delay is to check the switch status at the end of the loop, justbefore the USB report. This may reduce the delay significantly, butoften many activities within the input device may attempt to use this“last call” before the device report is sent, which may result in theswitch status not always being included in the device report. In someembodiments, a hybrid switch architecture may allow for an additionalinterrupt signal to give the input device (processors 210) anotification, even if the switch was already checked (switch statuscheck) that an event had or had not happened. In FIG. 9C, for instance,a click event 930 occurs after the switch status check 910 a, howeverthe additional switch signal (e.g., the first and/or second switch) canbe used as an interrupt 940 to inform the processors 210 that a clickevent has occurred, which can help ensure that the click event isreported out on the first device report 920 a, instead of waiting untilthe second device report 920 b as would occur without the benefit of aninterrupt.

FIG. 9D is a simplified flow chart showing aspects of a method 950 forefficiently reporting event data using a hybrid switch in an inputdevice, according to certain embodiments. Method 950 can be performed byprocessing logic that may comprise hardware (e.g., circuitry, dedicatedlogic, etc.), software operating on appropriate hardware (such as ageneral purpose computing system or a dedicated machine), firmware(embedded software), or any combination thereof. In certain embodiments,method 950 can be performed by aspects of system 200, system 300, hybridswitch 600, or a combination thereof, as would be appreciated by one ofordinary skill in the art with the benefit of this disclosure.

At operation 960, method 950 can include receiving a first signal from afirst switch of the input device, the first switch configured togenerate the first signal when a depressible element of the input deviceis depressed by a threshold distance, according to certain embodiments.In some embodiments, the first switch can be a contact-based switch,such as an electric or galvanic contact-based switch. The input devicecan be a computer mouse where the depressible element is a button on thecomputer mouse, a keyboard where the depressible element is a key on thekeyboard, or other suitable input device including medical devices,internet-of-things devices, gaming devices, home entertainment devices,fitness devices, or any suitable input device with input elements thatcan be configured to incorporate the myriad hybrid switchimplementations described herein, including but not limited to the typesof input devices described above (but not necessarily shown) withrespect to FIG. 1.

At operation 965, method 950 can include configuring a second switch ofthe input device to change from an inactive state to an active state inresponse to receiving the first signal, according to certainembodiments. In some cases, the second switch can be one of an optical,capacitive, inductive, piezo, or magnetic contactless switch. Althoughmany embodiments described herein include a hybrid switch with acontact-based switch and a contactless switch, it should be understoodthat some embodiments may employ two contact-based switches, twocontactless switches, more than two switches, or any combinationthereof, to implement the various novel concepts described in thepresent disclosure.

At operation 970, method 950 can include receiving a second signal fromthe second switch when the second switch is in the active state, thesecond signal indicating whether the depressible element is depressed bythe threshold distance, according to certain embodiments.

At operation 975, method 950 can include determining whether the secondsignal indicates that the depressible element is depressed by thethreshold distance, according to certain embodiments.

At operation 980, method 950 can include generating event dataconfirming that the depressible element is depressed by the thresholddistance in response to receiving the second signal that indicates thatthe depressible element is depressed by the threshold distance,according to certain embodiments.

At operation 985, method 950 can include generating an interrupt signalin response to the second signal indicating that the depressible elementis depressed by the threshold distance, according to certainembodiments.

At operation 990, method 950 can include in response to receiving theinterrupt signal, causing the input device to include the event data ona next periodic input device report regardless of whether the event datais generated before or after a periodic switch status check, theperiodic switch status check occurring once before each successive inputdevice report, according to certain embodiments. In some embodiments,the second switch is configured to change from an inactive state to anactive state in response to receiving a first rising edge of the firstsignal. The second switch may be in the inactive state by default untilswitched to the active state in response to receiving the first signal.

It should be appreciated that the specific steps illustrated in FIG. 9Dprovide a particular method 950 for efficiently reporting event datausing a hybrid switch in an input device, according to certainembodiments. Other sequences of steps may also be performed according toalternative embodiments. Furthermore, additional steps may be added orremoved depending on the particular applications. Any combination ofchanges can be used and one of ordinary skill in the art with thebenefit of this disclosure would understand the many variations,modifications, and alternative embodiments thereof.

Preemptive Click with Sensor Fusion

In conventional input devices, when a user clicks a mouse or presses akeyboard key, the device “waits” until the user presses the button/keydown to a certain activation threshold (activation point) to trigger theclick event. The activation threshold is typically a design parameter ofthe switch. A design goal for many contemporary input devicebuttons/keys is to set the activation threshold at an early point thebutton is depressed, but not too early where the user cannot still “pullback” or partially press the button/key and release withoutinstantiating a button/key press event. In other words, if theactivation threshold is too early, the user may experience unintendedclicks, and if it is too late, the user may lose some time(milliseconds) against their opponent, for instance, in competitivee-sports scenarios.

With the contactless switch (e.g., optical, magnetic (Hall Effect),inductive, capacitive, piezo, etc.), the output of the switch can beanalog, as described above with respect to FIGS. 5A-5B. This means thatthe output is not only an ON/OFF status (see, e.g., FIG. 4A), but canprovide some indication of how much the button was pressed (e.g., basedon how much light 575 is detected by detector 580). Based on this fact,an earlier threshold could be set to be potentially faster than acontact-based switch and adjusted to avoid the non-ideal activationthreshold setting described above. While this is theoretically possiblewith contactless switches, the activation threshold can be extremelydifficult to set when accounting for environmental and productionvariations and tolerances between different contactless sensors, theirarrangement and configuration within the input device, and the like. Again, the hybrid provides additional information that allows thiscapability to be reliably mass produced.

FIG. 10A is a simplified timing diagram 1000 showing aspects ofgenerating preemptive inputs on an input device using a hybrid switch,according to certain embodiments. The electrical signal from acontact-based switch can be used to enhance the benefits of the opticalswitch in hybrid switch embodiments. For instance, the electrical switchmay be used to automatically calibrate the optical switch threshold,allowing for individual customization for a particular unit. Thus, thecalibrated optical switch can now trigger before it would typically,which allows some delay/latency reduction. The preemptive click couldeven be a parameter set by the user based on his likings and hissensitivity to early detection/light pressing.

Referring back to FIG. 10A, the timing diagram 1000 shows a switchoutput for a contactless switch (e.g., an optical device) over time.During a click event, the optical analog output signal is indicative ofa transition from a non-pressed state (e.g., barrier 510 is notobstructing light 525) with a maximum signal (e.g., Vcc) to a depressedstate (e.g., barrier 510 is obstructing light 525) with a minimum signal(0 V or signal ground). As the optical barrier begins obstructing thelight from the emitter, less light reaches the receiver (detector) andthe output begins to reduce, as shown in FIG. 10A, which includes theoptical analog signal, the electrical signal of the contact-based switch(e.g., first switch), a typical activation threshold for the contactlessswitch (e.g., the second switch). A preemptive click threshold andcorresponding preemptive click signal can be set by using thecontact-based switch as a calibration reference, as described above. Asshown in FIG. 10A, the contactless switch can have a reliable preemptiveclick signal that can accommodate any manufacturing tolerances andvariations due to this ability to calibrate relative to thecontact-based switch.

In some embodiments that incorporate these calibration techniques, aninput device (e.g., computer mouse or keyboard) can include one or moreprocessors, a depressible element including two switches including afirst switch (e.g., contact based switch) configured to generate a firstsignal when activated and a second switch (e.g., contactless switch)configured to generate a second signal when activated. The one or moreprocessors can be communicatively coupled to the first switch and thesecond switch and may be configured to: receive the first signal fromthe first switch indicating that the first switch is activated inresponse to the depressible element being depressed by a thresholddistance; determine a first position of the depressible element when thefirst signal is received, the first position of the depressible elementcorresponding to the threshold distance; calibrate a first activationthreshold for the second switch based on the first position of thedepressible element when the first signal is received, the firstactivation threshold causing the second switch to generate the secondsignal when the depressible element is depressed to the first positioncorresponding to the threshold distance; determine a second activationthreshold for the second switch, the second activation thresholdcorresponding to a second position of the depressible element thatcauses the second switch to generate the second signal, wherein thesecond position is between the first position and a position of thedepressible element when at rest and not being depressed; and cause thesecond switch to switch from the first activation threshold to thesecond activation threshold.

FIG. 10B is a simplified flow chart showing aspects of a method 1050 forgenerating preemptive inputs on an input device using a hybrid switch,according to certain embodiments. Method 1050 can be performed byprocessing logic that may comprise hardware (e.g., circuitry, dedicatedlogic, etc.), software operating on appropriate hardware (such as ageneral purpose computing system or a dedicated machine), firmware(embedded software), or any combination thereof. In certain embodiments,method 1050 can be performed by aspects of system 200, system 300,hybrid switch 600, or a combination thereof, as would be appreciated byone of ordinary skill in the art with the benefit of this disclosure.

At operation 1060, method 1050 can include receiving a first signal froma first switch of the input device, the first switch configured togenerate the first signal when a depressible element of the input deviceis depressed by a threshold distance, according to certain embodiments.The first switch can be an electric or galvanic contact-based switch.The input device can be a computer mouse where the depressible elementis a button on the computer mouse, a keyboard where the depressibleelement is a key on the keyboard, or other suitable input deviceincluding medical devices, internet-of-things devices, gaming devices,home entertainment devices, fitness devices, or any suitable inputdevice with input elements that can be configured to incorporate themyriad hybrid switch implementations described herein, including but notlimited to the types of input devices described above (but notnecessarily shown) with respect to FIG. 1.

At operation 1065, method 1050 can include determining a first positionof the depressible element when the first signal is received, the firstposition of the depressible element corresponding to the thresholddistance, according to certain embodiments.

At operation 1070, method 1050 can include calibrating a firstactivation threshold for a second switch based on the first position ofthe depressible element when the first signal is received, the firstactivation threshold causing the second switch to generate a secondsignal when the depressible element is depressed to the first positioncorresponding to the threshold distance, according to certainembodiments. In some cases, the second switch can be one of an optical,capacitive, inductive, piezo, or magnetic contactless switch. Althoughmany embodiments described herein include a hybrid switch with acontact-based switch and a contactless switch, it should be understoodthat some embodiments may employ two contact-based switches, twocontactless switches, more than two switches, or any combinationthereof, to implement the various novel concepts described in thepresent disclosure.

At operation 1075, method 1050 can include determine a second activationthreshold for the second switch, the second activation thresholdcorresponding to a second position of the depressible element thatcauses the second switch to generate the second signal, wherein thesecond position is between the first position and a position of thedepressible element when at rest and not being depressed, according tocertain embodiments.

At operation 1080, method 1050 can include cause the second switch toswitch from the first activation threshold to the second activationthreshold, according to certain embodiments. In some embodiments, method1050 may further include receiving an input from a user corresponding toa selection of second activation threshold for the second switch,wherein the determining of the second activation threshold is based onthe input from the user.

It should be appreciated that the specific steps illustrated in FIG. 10Bprovide a particular method 1050 for generating preemptive inputs on aninput device using a hybrid switch, according to certain embodiments.Other sequences of steps may also be performed according to alternativeembodiments. Furthermore, additional steps may be added or removeddepending on the particular applications. Any combination of changes canbe used and one of ordinary skill in the art with the benefit of thisdisclosure would understand the many variations, modifications, andalternative embodiments thereof.

Pre-Failure Detection and Self-Maintenance

In some cases, keyboards and mice are devices that often get used dailyand sometimes more than 8 hours per day. The switches are some of themain interfaces with the user and may be some of the more fragile partsof the input device. For a pro gamer, changing their mouse/keyboard canbe a difficult and challenging endeavor. As every device is slightlydifferent than the next, a similar mouse model could have a slightlydifferent response characteristic. Switching devices may requirehundreds of additional hours of training to rebuild the user's musclememory with the new input devices. When in a competitive environment,having to switch devices in the middle of a tournament could be adecision factor between winning and losing. Having an indicator that themouse is at risk of failing ahead of the important event could behelpful to both the user and manufacturer and may be realized by using asimple correlation algorithm during the full length of the productbetween the electrical and the optical switch response. As describedabove, electrical contacts commonly wear out over time. In some opticaldesigns, there can be some LED wear over time, however unlikely giventheir typical long product lives. By monitoring the behavior of theelectrical signal around the optical feedback (e.g., bouncing increaseor bouncing time or the delay between electrical and optical signals)and the behavior of the optical signal around the electrical feedback(e.g., increase/decrease of the optical signal voltage, delay betweenelectrical and optical signals), some of these issues can be identifiedbefore a failure mode occurs.

Keyboard Implementations

As described above, any of the hybrid switch implementations presentedherein can be used on any suitable input device including computer mice,keyboards, game controllers, or the like. In some cases, a difference indesign considerations between a keyboard and a computer mouse may be thenumber of switches used. The power consumption on a keyboard withoptical switches on approximately 100 keys can be a significant part ofthe power budget of a keyboard design. A typical keyboard may use thekeys as interrupt lines, and the keyboard may frequently go into a lowpower sleep mode for improved power efficiency. While this case savepower, it can introduce unwanted latency when switching the keyboardback to an active state, as the various system and modules within thekeyboard have to be powered back up. The use of a hybrid switch allowsthe keyboard to still go into a lower power mode and wait for aninterrupt without having to have the entire device entire a sleep modeby keeping the optical devices in a low power state and checking theelectrical contact to trigger the interrupt. Some typical designs forkeyboard keys using an optical-based hybrid switch approach are shown inFIGS. 11A-11B. Keyboard keys using an inductive-based hybrid switchapproach are shown in FIGS. 12A-12B. In each case (with both furtherdescribed below), the keys include the contactless switch in onecross-section, and a typical “clicky” mechanical switch configured inanother cross-section normal to the first cross section. In such cases,the haptic profile and electrical contact can be made using the sameflexing blade, as shown in the figures.

FIGS. 11A and 11B show a hybrid key structure 1100, according to certainembodiments. Key structure 1100 can include a key cap 1110 and a stem1120 coupled to the key cap and configured to be depressed relative toan upper frame 1105 in response to a user force, as a typical keyboardkey structure would operate. Key cap 1110 typically is not fixedlyintegrated with the switch and can be snapped on the top of stem 1120.In some aspects, key cap 1110 may cause, in part, the “clicky” soundwhen the key cap is bottomed out and strikes frame 1105. Stem 1120 maybe shaped in a variety of ways that affects the actuation and traveldistance of the switch, and creates the keystroke feel and defines theswitch type. In some aspects, step 1120 can include a haptic and contactspacer portion 1150, which may provide a haptic response and separatecontacts A and B when the switch is not closed (the key is not pressedby a threshold amount). Spring 1170 (e.g., coil spring or other suitablebiasing mechanism) may have a resistance that can affect an amount offorce needed to actuate the key and effectuate a click event, as well asprovide a restoring force to guide the switch to slide back to aninitial position. The base (bottom housing) 1108 may be coupled to upperhousing 1105 (coupling not shown) and may attach to an underlyingprinted circuit board (PCB) or other suitable feature, as would beappreciated by one of ordinary skill in the art with the benefit of thisdisclosure. In operation, when a key is pressed beyond a thresholdamount, a contact mechanism makes physical and electrical contact withthe PCB and closes the switch circuit, thus rendering a key press orclick event. In the embodiment shown, a contact mechanism may becomprised of two conductors (e.g., contacts A and B) that make contactwhen the key is in a neutral, non-pressed state. Thus, hybrid keystructure 1100 may be in a normally closed state. The optical LED andphototransistor 1140 may also trigger a key press event in response tothe key being depressed by the threshold amount. Note that any suitablecontactless sensor can be used. For instance, in FIG. 12A-12B, asdescribed above, shows an embodiment that utilizes an electric coil 1280(e.g., realized as traces on a PCB 1290) that can perform inductive orcapacitive sensing. One of ordinary skill in the art with the benefit ofthis disclosure would appreciate the many modifications, variations, andalternative embodiments thereof.

In a typical keyboard, the lines are connected to the processor (MCU)inputs, and the columns are driven one after the other (when one isdriven, the other are in High impedance). Some implementations that canbe used in a full hybrid keyboard can include: (1) LEDs are drivencolumns after columns and the phototransistor are read as lines; (2)LEDs are driven individually with a LED driver (same as for RGBkeyboards) and phototransistors are regrouped; (3) Separated Optical andElectrical where optical is done using a typical scanning of the matrixand electrical contacts are connected together and used for interrupts;and (4) a Triangular matrix implementation.

Some embodiments may utilize at least one network that would be familiarto those skilled in the art for supporting communications using any of avariety of commercially available protocols, such as TCP/IP, UDP, OSI,FTP, UPnP, NFS, CIFS, and the like. The network can be, for example, alocal area network, a wide-area network, a virtual private network, theInternet, an intranet, an extranet, a public switched telephone network,an infrared network, a wireless network, and any combination thereof.

Such devices also can include a computer-readable storage media reader,a communications device (e.g., a modem, a network card (wireless orwired), an infrared communication device, etc.), and working memory asdescribed above. The computer-readable storage media reader can beconnected with, or configured to receive, a non-transitorycomputer-readable storage medium, representing remote, local, fixed,and/or removable storage devices as well as storage media fortemporarily and/or more permanently containing, storing, transmitting,and retrieving computer-readable information. The system and variousdevices also typically will include a number of software applications,modules, services or other elements located within at least one workingmemory device, including an operating system and application programs,such as a client application or browser. It should be appreciated thatalternate embodiments may have numerous variations from that describedabove. F or example, customized hardware might also be used and/orparticular elements might be implemented in hardware, software(including portable software, such as applets) or both. Further,connections to other computing devices such as network input/outputdevices may be employed.

Numerous specific details are set forth herein to provide a thoroughunderstanding of the claimed subject matter. However, those skilled inthe art will understand that the claimed subject matter may be practicedwithout these specific details. In other instances, methods,apparatuses, or systems that would be known by one of ordinary skillhave not been described in detail so as not to obscure claimed subjectmatter. The various embodiments illustrated and described are providedmerely as examples to illustrate various features of the claims.However, features shown and described with respect to any givenembodiment are not necessarily limited to the associated embodiment andmay be used or combined with other embodiments that are shown anddescribed. Further, the claims are not intended to be limited by any oneexample embodiment.

While the present subject matter has been described in detail withrespect to specific embodiments thereof, it will be appreciated thatthose skilled in the art, upon attaining an understanding of theforegoing may readily produce alterations to, variations of, andequivalents to such embodiments. Accordingly, it should be understoodthat the present disclosure has been presented for purposes of examplerather than limitation, and does not preclude inclusion of suchmodifications, variations, and/or additions to the present subjectmatter as would be readily apparent to one of ordinary skill in the art.Indeed, the methods and systems described herein may be embodied in avariety of other forms; furthermore, various omissions, substitutionsand changes in the form of the methods and systems described herein maybe made without departing from the spirit of the present disclosure. Theaccompanying claims and their equivalents are intended to cover suchforms or modifications as would fall within the scope and spirit of thepresent disclosure.

Although the present disclosure provides certain example embodiments andapplications, other embodiments that are apparent to those of ordinaryskill in the art, including embodiments which do not provide all of thefeatures and advantages set forth herein, are also within the scope ofthis disclosure. Accordingly, the scope of the present disclosure isintended to be defined only by reference to the appended claims.

Unless specifically stated otherwise, it is appreciated that throughoutthis specification discussions utilizing terms such as “processing,”“computing,” “calculating,” “determining,” and “identifying” or the likerefer to actions or processes of a computing device, such as one or morecomputers or a similar electronic computing device or devices, thatmanipulate or transform data represented as physical electronic ormagnetic quantities within memories, registers, or other informationstorage devices, transmission devices, or display devices of thecomputing platform.

The system or systems discussed herein are not limited to any particularhardware architecture or configuration. A computing device can includeany suitable arrangement of components that provide a result conditionedon one or more inputs. Suitable computing devices include multi-purposemicroprocessor-based computer systems accessing stored software thatprograms or configures the computing system from a general purposecomputing apparatus to a specialized computing apparatus implementingone or more embodiments of the present subject matter. Any suitableprogramming, scripting, or other type of language or combinations oflanguages may be used to implement the teachings contained herein insoftware to be used in programming or configuring a computing device.

Embodiments of the methods disclosed herein may be performed in theoperation of such computing devices. The order of the blocks presentedin the examples above can be varied—for example, blocks can bere-ordered, combined, and/or broken into sub-blocks. Certain blocks orprocesses can be performed in parallel.

Conditional language used herein, such as, among others, “can,” “could,”“might,” “may,” “e.g.,” and the like, unless specifically statedotherwise, or otherwise understood within the context as used, isgenerally intended to convey that certain examples include, while otherexamples do not include, certain features, elements, and/or steps. Thus,such conditional language is not generally intended to imply thatfeatures, elements and/or steps are in any way required for one or moreexamples or that one or more examples necessarily include logic fordeciding, with or without author input or prompting, whether thesefeatures, elements and/or steps are included or are to be performed inany particular example.

The terms “comprising,” “including,” “having,” and the like aresynonymous and are used inclusively, in an open-ended fashion, and donot exclude additional elements, features, acts, operations, and soforth. Also, the term “or” is used in its inclusive sense (and not inits exclusive sense) so that when used, for example, to connect a listof elements, the term “or” means one, some, or all of the elements inthe list. The use of “adapted to” or “configured to” herein is meant asopen and inclusive language that does not foreclose devices adapted toor configured to perform additional tasks or steps. Additionally, theuse of “based on” is meant to be open and inclusive, in that a process,step, calculation, or other action “based on” one or more recitedconditions or values may, in practice, be based on additional conditionsor values beyond those recited. Similarly, the use of “based at least inpart on” is meant to be open and inclusive, in that a process, step,calculation, or other action “based at least in part on” one or morerecited conditions or values may, in practice, be based on additionalconditions or values beyond those recited. Headings, lists, andnumbering included herein are for ease of explanation only and are notmeant to be limiting.

The various features and processes described above may be usedindependently of one another, or may be combined in various ways. Allpossible combinations and sub-combinations are intended to fall withinthe scope of the present disclosure. In addition, certain method orprocess blocks may be omitted in some embodiments. The methods andprocesses described herein are also not limited to any particularsequence, and the blocks or states relating thereto can be performed inother sequences that are appropriate. For example, described blocks orstates may be performed in an order other than that specificallydisclosed, or multiple blocks or states may be combined in a singleblock or state. The example blocks or states may be performed in serial,in parallel, or in some other manner. Blocks or states may be added toor removed from the disclosed examples. Similarly, the example systemsand components described herein may be configured differently thandescribed. For example, elements may be added to, removed from, orrearranged compared to the disclosed examples.

What is claimed is:
 1. An input device comprising: a housing; adepressible element coupled to the housing, the depressible elementhaving two switches including: a first switch configured to generate afirst signal when the depressible element is depressed by a thresholddistance; and a second switch configured to generate a second signalindicating whether the depressible element is depressed by the thresholddistance when the second switch is in an active state; and one or moreprocessors disposed in the housing and communicatively coupled to thefirst switch and the second switch, the one or more processorsconfigured to: receive the first signal from the first switch; configurethe second switch to change from an inactive state to an active state inresponse to receiving the first signal; receive the second signal fromthe second switch in the active state; determine whether the secondsignal indicates that the depressible element is depressed by thethreshold distance; generate event data confirming that the depressibleelement is depressed by the threshold distance in response to receivingthe second signal that indicates that the depressible element isdepressed by the threshold distance; generate an interrupt signal inresponse to the second signal indicating that the depressible element isdepressed by the threshold distance; and in response to receiving theinterrupt signal, cause the input device to include the event data on anext periodic input device report regardless of whether the event datais generated before or after a periodic switch status check, theperiodic switch status check occurring once before each successive inputdevice report.
 2. The input device of claim 1 wherein the first switchis an electric or galvanic contact-based switch.
 3. The input device ofclaim 1 wherein the second switch is one of an optical, capacitive,inductive, piezo, or magnetic contactless switch.
 4. The input device ofclaim 1 wherein the second switch is configured to change from aninactive state to an active state in response to receiving a firstrising edge of the first signal.
 5. The input device of claim 1 whereinthe input device is communicatively coupled to a host computing device,and the input device report is generated and sent to the host computingdevice at 1 ms intervals.
 6. The input device of claim 1 wherein thesecond switch is in the inactive state by default until switched to theactive state in response to the one or more processors receiving thefirst signal.
 7. The input device of claim 1 wherein the input device isone of: a computer mouse, wherein the depressible element is a button onthe computer mouse; or a keyboard, wherein the depressible element is akey on the keyboard.
 8. A method of operating an input device, themethod comprising: receiving a first signal from a first switch of theinput device, the first switch configured to generate the first signalwhen a depressible element of the input device is depressed by athreshold distance; configuring a second switch of the input device tochange from an inactive state to an active state in response toreceiving the first signal; receiving a second signal from the secondswitch when the second switch is in the active state, the second signalindicating whether the depressible element is depressed by the thresholddistance; determining whether the second signal indicates that thedepressible element is depressed by the threshold distance; generatingevent data confirming that the depressible element is depressed by thethreshold distance in response to receiving the second signal thatindicates that the depressible element is depressed by the thresholddistance; generating an interrupt signal in response to the secondsignal indicating that the depressible element is depressed by thethreshold distance; and in response to receiving the interrupt signal,causing the input device to include the event data on a next periodicinput device report regardless of whether the event data is generatedbefore or after a periodic switch status check, the periodic switchstatus check occurring once before each successive input device report.9. The method of claim 8 wherein the first switch is an electric orgalvanic contact-based switch.
 10. The method of claim 8 wherein thesecond switch is one of an optical, capacitive, inductive, piezo, ormagnetic contactless switch.
 11. The method of claim 8 wherein thesecond switch is configured to change from an inactive state to anactive state in response to receiving a first rising edge of the firstsignal.
 12. The method of claim 11 wherein the second switch is in theinactive state by default until switched to the active state in responseto receiving the first signal.
 13. An input device comprising: one ormore processors; a depressible element including two switches including:a first switch configured to generate a first signal when activated; anda second switch configured to generate a second signal when activated,wherein the one or more processors are communicatively coupled to thefirst switch and the second switch and the one or more processors areconfigured to: receive the first signal from the first switch indicatingthat the first switch is activated in response to the depressibleelement being depressed by a threshold distance; determine a firstposition of the depressible element when the first signal is received,the first position of the depressible element corresponding to thethreshold distance; calibrate a first activation threshold for thesecond switch based on the first position of the depressible elementwhen the first signal is received, the first activation thresholdcausing the second switch to generate the second signal when thedepressible element is depressed to the first position corresponding tothe threshold distance; determine a second activation threshold for thesecond switch, the second activation threshold corresponding to a secondposition of the depressible element that causes the second switch togenerate the second signal, wherein the second position is between thefirst position and a position of the depressible element when at restand not being depressed; and cause the second switch to switch from thefirst activation threshold to the second activation threshold.
 14. Theinput device of claim 13 wherein the first switch is an electric orgalvanic contact-based switch, and wherein the second switch is one ofan optical, capacitive, inductive, piezo, or magnetic contactlessswitch.
 15. The input device of claim 13 wherein the one or moreprocessors are further configured to: receive an input from a usercorresponding to a selection of second activation threshold for thesecond switch, wherein the determining of the second activationthreshold is based on the input from the user.
 16. The input device ofclaim 13 wherein the input device is one of: a computer mouse, whereinthe depressible element is a button on the computer mouse; or akeyboard, wherein the depressible element is a key on the keyboard. 17.A method of operating an input device, the method comprising: receivinga first signal from a first switch of the input device, the first switchconfigured to generate the first signal when a depressible element ofthe input device is depressed by a threshold distance; determining afirst position of the depressible element when the first signal isreceived, the first position of the depressible element corresponding tothe threshold distance; calibrating a first activation threshold for asecond switch based on the first position of the depressible elementwhen the first signal is received, the first activation thresholdcausing the second switch to generate a second signal when thedepressible element is depressed to the first position corresponding tothe threshold distance; determining a second activation threshold forthe second switch, the second activation threshold corresponding to asecond position of the depressible element that causes the second switchto generate the second signal, wherein the second position is betweenthe first position and a position of the depressible element when atrest and not being depressed; and causing the second switch to switchfrom the first activation threshold to the second activation threshold.18. The method of claim 17 wherein the first switch is an electric orgalvanic contact-based switch, and wherein the second switch is one ofan optical, capacitive, inductive, piezo, or magnetic contactlessswitch.
 19. The method of claim 17 wherein the method further comprises:receiving an input from a user corresponding to a selection of secondactivation threshold for the second switch, wherein the determining ofthe second activation threshold is based on the input from the user. 20.The method of claim 17 wherein the input device is one of: a computermouse, wherein the depressible element is a button on the computermouse; or a keyboard, wherein the depressible element is a key on thekeyboard.